

from rest_framework.generics import ListAPIView,CreateAPIView
from meiduo_admin.serializers.user_serializers import *
from meiduo_admin.utils.pages import MyPage



class UserAPIView(ListAPIView, CreateAPIView):
    queryset = User.objects.all()
    serializer_class = UserModelSerializer

    # 添加分页器
    pagination_class = MyPage


    def get_queryset(self):
        # 过滤：1、超级管理员；2、如果用户输入了keyword,根据用户名过滤

        # 用户在input标签中输入的用户名过滤数据
        # 问题：如何在非视图函数中，获取请求对象？
        # 答：self.request就是请求对象
        keyword = self.request.query_params.get('keyword')

        if keyword:
            return self.queryset.filter(
                is_staff=True,
                username__contains=keyword
            )

        return self.queryset.filter(is_staff=True)